Skip to main content

CRM

Detailed description of API:

Version & Updates

VersionRevision DateRevision History
1.012th Sep 2023New Release

Overview

DMS integration aims to create an integration between the Dealer DMS and the CNHi CPQ application (Microsoft Dynamics CRM 365 Dealer and SalesApp) using the Data Exchange Platform (DEP) as middleware, and to provide the details of the API layer available to handle Accounts, Contacts, Domain Objects data in the scenario of DEP | DMS | CRM | SalesApp integration.

Integration between DMS & CNHi systems generates the following advantages for Dealers:

  • Avoids double entry of Customer information
  • Increase efficiency for Offer Management
  • Increase acknowledgement for Order Status

image.png

image.png

Pre-requisites
Pre-requisites

  • DEP API will require subscription-API-key in HTTP header to identify client and to be able to track API usage.
  • DMS will pass Basic auth in HTTP header for username/password.
  • The User ID and Password is the one provided by CNHi Dealer Portal team to authenticate/authorize access to CNHi applications against ISAM.
  • The User Id must be aligned to Data Sharing Agreement to access the API.
  • Based on the payload (XML/JSON) pass the content-type in the header.
  • Query Parameters/Request Body as provided in the specification details below are passed to call API.
  • The assumption underlying this document is that integration with individual DEALERS is centralized by the DMS, which for us acts as Client. Consequently, it is expected that requests transmitted to our interfaces are controlled by the DMS itself to ensure that the requester has the necessary authorizations to send and retrieve the requested data.

Authentication
Authentication

  • DMS will pass Basic auth in HTTP header with username/password
  • Each DMS provider will have a subscription_key assigned by CNHi team, please reach out to EMEA DMS Support for assistance
  • The UserID and Password will be set up in the Dealer Portal by the Dealer uniquely for DMS access to interfaces
  • DEP API will require subscription_key in HTTP header to identify client

API Format

  • REST

The DEP takes care of the format transformations (as needed) to process the request and provide a response to the DMS system.

API Integration - Technical Notes

Following the main point of DEP API layer Interface agreement:

  • API will handle json format as content-type

  • API will handle the search and pagination as per given rule:

    • Search filter: search criteria based on json properties:
      • i.e. ?dmsCode={string}
  • Pagination: it will be possible to drive the pagination, with the following required parameters:

    • pageNumber: client page request number
    • fetchSize: fetch size
    • i.e. ?fetchDate= YYYY-MM-DD&pageNumber={int}& fetchSize=100
  • API will return in a dedicated section of the response the total number of the rows found with a given request adding the current paging and the fetch size. Example:

{
"parameters": {
"pageNumber": 1,
"totalPages": 1,
"pageSize": 100,
"totaItems": 2
}
}
  • API http protocol status code will be present in the response, same as the message related to the operation executed.
  • When constructing a request for any of our API endpoints that support the fetchDate parameter, it's crucial to properly format this parameter to ensure accurate data retrieval
    • The fetchDate parameter is designed to accept dates in the ISO 8601 format, which should look like "YYYY-MM-DD" (for example, "2024-04-10").
    • The specified date should be in Coordinated Universal Time (UTC)
    • By including this parameter in your API call, you're instructing the system to return only the entities that have been modified after the specified date

Historical Data Load - Technical Specifications

Import Historical data (existing data) of Accounts and Contacts from the DMS application into CNHi DEP platform is required for the purpose of maintaining single source of information collated from DMS and CNHi CRM applications, and thus provide information real-time via API calls described in further sections in this document.

This import is a one-time operation to be performed as initial load before starting the sync between DMS data and Staging Area. It could also be needed if some error occurs between the two systems and we need to re-sync everything from the beginning but, in any case, is a technical operation that should be agreed from both parts and will be executed manually from DEP side.

Steps to import DMS Historical Data into DEP:

Accounts:
  1. DMS user to export Accounts Data from DMS application in csv format (filename: “dmsDmdOutletCode_dmsCode_accounts_YYYY_MM_DD.csv”). Zip this file to dmsDmdOutletCode_dmsCode_accounts _YYYY_MM_DD.zip

Note: “YYYY_MM_DD” indicate file generation date

  1. Upload the zip into CNHi provided SFTP location

    a. CNHi provides path and credentials to access SFTP

Contacts:
  1. DMS user to export Contacts Data from DMS application in csv format (filename: “dmsDmdOutletCode_dmsCode_contacts_YYYY_MM_DD.csv”). Zip this file to dmsDmdOutletCode_dmsCode_contacts_YYYY_MM_DD.zip

Note: “YYYY_MM_DD” indicate file generation date

  1. Upload the zip into CNHi provided SFTP location

    a. CNHi provides path and credentials to access SFTP

Note: An email communication to CNHi is required to inform any new file upload, so that file can be processed.

Connection Details

For DMS CRM we have 6 APIs:

  • Account Index API
  • Create Account API
  • Get Account API
  • Contact Index API
  • Create Contact API
  • Get Contact API

CNHi provides two environments:

  • CERT / UAT
  • Production

Account Index API

Account Index API allows users to retrieve domain objects for the feature environment to the DMS, in order to help while creating an account. DMSs can fetch single/multiple option set values based on the entity(account).

EnvironmentURLAPIRequest Type
CERT/UAThttps://{base_url}/emeaexternal/services/crm/index/accountRESTGET
Productionhttps://{base_url}/emeaexternal/services/crm/index/accountRESTGET

Request Parameters

Parameter NameParams TypeTypeIs Required (Y|N)Default ValueComments
optionSetNameQueryStringN-Option Set Name. Possible Values for Account: brand, accountTypeCode, addressCountry, relationshipTypeCode, stateCode, statusCode, preferredLanguageCode, legalFormCode and businessTypeMultiCode.

Option Set Name allowed values:

Entity NameOptionset Name allowed valuesDescription
AccountsbrandBrand
AccountsaccountTypeCodeAccount Type
AccountsaddressCountryCountry
AccountsrelationshipTypeCodeRelationship Type
AccountsstateCodeAccount State-Status Code
AccountsstatusCodeAccount State-Status Code
AccountspreferredLanguageCodePreferredLanguage
AccountslegalFormCodeLegal Form
AccountsbusinessTypeMultiCodeBusiness Type

Note:

  1. To fetch all the picklists values for an account, do not pass any value for OptionSetName query parameter.

  2. To fetch specific picklists, provide OptionSetName (eg: brand, accountTypeCode, addressCountry, relationshipTypeCode, stateCode, statusCode, preferredLanguageCode, legalFormCode and businessTypeMultiCod) in query string. We can pass multiple OptionSetName.

Response Description

JSON PropertyDescription
collectionNameValorized with “index”
ItemsList of items that are matching the request; empty list for no data found scenario. Please note that the structure of items in list is composed of domain object Items.
paginationPropertiesSet of metadata required to handle client pagination
statusCodeHTTP status code
MessageStatus Message

Success Response Structure

NameTypeDescription
collectionNameStringCollection Name – Index
Items.entityNameStringEntity Name
Items.optionSetNameStringOption Set Name
Items.optionStringOption
Items.localizedlabellanguagecodeStringLocalized Label Language Code
Items.localizedlabelStringLocalized Label
paginationProperties.pageNumberInteger (Int32)Page Number
paginationProperties.totalPagesInteger (Int32)Total Pages
paginationProperties.pageSizeInteger (Int32)Page Size
paginationProperties.totalItemsInteger (Int32)Total Items
statusCodeStringStatus Code
MessageStringMessage

Success Sample Response

Download Account Index Sample Success Response

Failure Response Structure

NameTypeDescription
collectionNameStringCollection Name – Index
ItemsArrayEmpty Items - "items": []
paginationProperties.pageNumberInteger (Int32)Page Number
paginationProperties.totalPagesInteger (Int32)Total Pages
paginationProperties.pageSizeInteger (Int32)Page Size
paginationProperties.totalItemsInteger (Int32)Total Items
statusCodeStringStatus Code
MessageStringMessage

Failure Sample Response

Download Account Index Sample Failure Response

Response Codes

ScenarioHTTP Status CodeMessage
No Data Found404No Data Found
Unable to perform search500Internal Server Error
Operation performed200Operation successfully performed

Create / Update Account API

Using the Create / Update Account API, a DMS System can submit a request to create an account. DMSs can push only one account information per request.

EnvironmentURLAPIRequest Type
CERT/UAThttps://{base_url}/emeaexternal/services/crm/accountRESTPOST
Productionhttps://{base_url}/emeaexternal/services/crm/accountRESTPOST

Request Body

  
{
"dmsCode": "dmscode",

"dmsAccountId ": " testaccount ",

"dmsDmdOutletCode": "NHAG-FRA-000000-00",

"brand": 1,

"accountName": "my name",

"accountTypeCode": 10,

"addressCountry": 201,

"addressStateOrProvince": "Paris",

"addressCity": "Paris",

"addressLine": "Boulevard de la Madeleine",

"addressPostalCode": "75001",

"createdOn": "YYYY-MM-DD hh:mm:ss (UTC)",

"modifiedOn": "YYYY-MM-DD hh:mm:ss (UTC)",

"relationshipTypeCode": 4,

"emailAddress": "test@test.com",

"addressTelephone": "",

"primaryContactId" : "",

"taxCode": "fr11234556755",

"vatCode": "FR12345678912",

"siren": "123456789",

"siret": "12345678901234",

"stateCode": 1,

"statusCode": 1,

"preferredLanguageCode": 83,

"legalFormCode": -1,

"businessTypeMulticode": 2
}
  • Payload (XML/JSON) determined by content-type in the header of the request:
    • Content-Type application/JSON

Sample Create Account API Request Body

Download Sample Create Account JSON Request Body

Data Format and Validation

The below table shows the mandatory fields, datatypes and input format, as a minimum requirement to consider the Input as valid to create account.

Property name – JSON bodyDescriptionDEP/DMS MandatoryField TypeField Format/Expected Value
dmsCodeDMScodeYTextMax length: 500
dmsAccountIdID Account External - AccountidYTextMax length: 500
dmsDmdOutletCodeBusiness UnitYText
BrandBrandYIntPicklist
accountNameAccount NameYTextString - Max length: 200
accountTypeCodeAccount TypeYIntPicklist
addressCountryCountryYTextPicklist
addressStateOrProvinceProvinceTextMax length: 50
addressCityCityYTextMax length: 80
addressLineStreetYTextMax length: 500
addressPostalCodePostal CodeYTextMax length: 20
createdOnCreation DateYdatetimeYYYY-MM-DD hh:mm:ss (UTC)
modifiedOnModified DateYdatetimeYYYY-MM-DD hh:mm:ss (UTC)
relationshipTypeCodeRelationship TypeIntPicklist
emailAddressEmailTextMax length: 100
addressTelephoneMain PhoneYTextMax length: 50
primaryContactIdprimarycontactidTextFor example: 6F9619FF-8B86-D011-B42D-00C04FC964FF
taxCodeTax CodeTextMax length: 100
vatCodeVAT CodeTextMax length: 100
SirenSirenTextMax length: 100
SiretSiretTextMax length: 100
stateCodeStatusYIntPicklist
statusCodeStatus reasonYIntPicklist
preferredLanguageCodePreferred LanguageIntPicklist
legalFormCodeLegal FormIntPicklist
businessTypeMultiCodeBusinessTypeIntPicklist

Success Response Structure

The API response has the following structure:

Json PropertyDescription
statusCodeHTTP status code
MessageStatus Message
ErrorsArray with errors details

Success Sample Response

Download Create Account Sample Success Response

Failure Response Structure

Error Item Structure

Json PropertyDescription
instancePathProperty where the error occurred
schemaPathProperty path
KeywordArray with errors details
ParamsArray with additional error details – e.g. max length for string check
MessageDescriptive message for error

Failure Sample Response

Download Create Account Failure Success Response

Create Account API Attributes

Download Create Account API Attributes

Response Codes

ScenarioHTTP Status CodeMessage
Not a JSON400Validation failed
Invalid JSON500Internal Server Error
Mandatory fields Missing, Data Type, or Format Mismatch400Validation failed
Try to create an existing Account, already saved in CRM400Cannot create Account due to {accountid_DMS} already linked in SalesApp. To update visit SalesApp.
All validation passed200Account saved successfully

Get Account API

The goal of this API is to retrieve information related to the single/ multiple accounts and populate it to the DMS. DMS can query the account information based on dmsDmdOutletCode, dmsCode, dmsAccountId, and fetchDate.

EnvironmentURLAPIRequest Type
CERT/UAThttps://{base_url}/emeaexternal/services/crm/account-linked?RESTGET
Productionhttps://{base_url}/emeaexternal/services/crm/account-linked?RESTGET

Request Parameters

Parameter NameParams TypeTypeIs Required (Y|N)Default ValueComments
dmsDmdOutletCodeQueryStringY-
dmsCodeQueryStringN-
dmsAccountIdQueryStringN-If valorized, it allows to fetch specific account data list associated to given account id
fetchdateQueryString (Date Time)N-If valorized, it allows to fetch accounts modified after the provided date mm
fetchSizeQueryIntN-It becomes mandatory for request to fetch data for given date
pageNumberQueryIntN-It becomes mandatory for request to fetch data for given date

Note:

  1. To fetch single account, provide value for dmsDmdOutletCode, dmsCode, dmsAccountId. You can skip the fetchDate, fetchSize and pageNumber.

  2. To fetch accounts modified after the provided date, provide values for dmsDmdOutletCode, dmsCode, fetchDate, fetchSize and pageNumber (pagination feature: it specifies the requested page number, starting from 1, and is needed for splitting the output in pages when the result set exceed a prefixed number of documents).

Response Description

Json PropertyDescription
collectionNameValorized with “accounts”
ItemsList of items that are matching the request; empty list for no data found scenario. Please note that the structure of items in list is composed of account items.
paginationPropertiesSet of metadata required to handle client pagination
statusCodeHTTP status code
MessageStatus Message

Success Response Structure

Json PropertyTypeDescription
collectionNameStringCollection Name – accounts
Items.dmsCodeStringDMS Code
Items.dmsAccountIdStringDMS Account Id
Items.dmsDmdOutletCodeStringDMS DMD Outlet Code
Items.brandInteger (Int32)Brand
Items.accountNameStringAccount Name
Items.accountTypeCodeInteger (Int32)Account Type Code
Items.addressCountryInteger (Int32)Address Country
Items.addressStateOrProvinceStringAddress State or Province
Items.addressCityStringAddress City
Items.addressLineStringAddress Lane
Items.addressPostalCodeStringAddress Postal Code
Items.createdOnString (Date)Created Date
Items.modifiedOnStringModified On
Items.relationshipTypeCodeInteger (Int32)Relationship Type Code
Items.emailAddressStringEmail Address - "xxxxyyyyy@soso-aaa.bbb.com",
Items.addressTelephoneStringAddress Telephone - "000-000-0000",
Items.taxCodeStringTax Code
Items.vatCodeStringVAT Code
Items.sirenBooleanSiren
Items.siretBooleanSiret
Items.stateCodeInteger (Int32)State Code
Items.statusCodeInteger (Int32)Status Code
Items.preferredLanguageCodeInteger (Int32)Preferred Language Code
Items.legalFormCodeInteger (Int32)Legal Form Code
Items.businessTypeMulticodeInteger (Int32)Business Type Multicode
paginationProperties.pageNumberInteger (Int32)Page Number
paginationProperties.totalPagesInteger (Int32)Total Pages
paginationProperties.pageSizeInteger (Int32)Page Size
paginationProperties.totalItemsInteger (Int32)Total Items
statusCodeStringStatus Code
MessageStringMessage

Success Sample Response

Download Get Account API Sample Success Response

Failure Response Structure

Json PropertyTypeDescription
collectionNameStringCollection Name
ItemsArrayEmpty Items - "items": []
paginationProperties.pageNumberInteger (Int32)Page Number
paginationProperties.totalPagesInteger (Int32)Total Pages
paginationProperties.pageSizeInteger (Int32)Page Size
paginationProperties.totalItemsInteger (Int32)Total Items
statusCodeStringStatus Code
MessageStringMessage

Failure Sample Response

Download Get Account API Sample Failure Response

Response Codes

ScenarioHTTP Status CodeMessage
No Data Found404No Data Found
Unable to perform search500Internal Server Error
Mandatory fields Missing,400Validation failed
Operation performed200Operation successfully performed

Contact Index API

Contact Index API allows a user to retrieve domain objects for the feature environment to the DMS, in order to help while creating an account. DMSs can fetch single/multiple option set values based on the entity(contact).

EnvironmentURLAPIRequest Type
CERT/UAThttps://{base_url}/emeaexternal/services/crm/index/contactRESTGET
Productionhttps://{base_url}/emeaexternal/services/crm/index/contactRESTGET

Request Parameters

Parameter NameParams TypeTypeIs Required (Y|N)Default ValueComments
optionSetNameQueryStringN-Option Set Name. Possible Values for Contacts: brandCode, stateCode, statusCode and addressCountry.

Option Set Name allowed values.

Entity NameOption Set Name allowed valuesDescription
ContactsbrandCodeBrand
ContactsstateCodeContact State-Status Code
ContactsstatusCodeContact State-Status Code
ContactsaddressCountryCountry

Note:

  1. To fetch all the picklists values for an contact, do not pass any value for OptionSetName query parameter.

  2. To fetch specific picklists, provide OptionSetName (eg: brandCode, stateCode, statusCode and addressCountry) in query string. We can pass multiple OptionSetName.

Response Description

Json PropertyDescription
collectionNameValorized with “index”
ItemsList of items that are matching the request; empty list for no data found scenario. Please note that the structure of items in list is composed of domain object Items.
paginationPropertiesSet of metadata required to handle client pagination
statusCodeHTTP status code
messageStatus Message

Success Response Structure

NameTypeDescription
collectionNameStringCollection Name – Index
Items.entityNameStringEntity Name
Items.optionSetNameStringOption Set Name
Items.optionStringOption
Items.localizedlabellanguagecodeStringLocalized Label Language Code
Items.localizedlabelStringLocalized Label
paginationProperties.pageNumberInteger (Int32)Page Number
paginationProperties.totalPagesInteger (Int32)Total Pages
paginationProperties.pageSizeInteger (Int32)Page Size
paginationProperties.totalItemsInteger (Int32)Total Items
statusCodeStringStatus Code
MessageStringMessage

Success Sample Response

Download Contact Index API Sample Success Response

Failure Response Structure

NameTypeDescription
collectionNameStringCollection Name – Index
ItemsArrayEmpty Items - "items": []
paginationProperties.pageNumberInteger (Int32)Page Number
paginationProperties.totalPagesInteger (Int32)Total Pages
paginationProperties.pageSizeInteger (Int32)Page Size
paginationProperties.totalItemsInteger (Int32)Total Items
statusCodeStringStatus Code
MessageStringMessage

Failure Sample Response

Download Contact Index API Sample Failure Response

Create / Update Contact API

Using the Create / Update Contact API, a DMS System can submit a request to create a contact or update an existing one. DMS can push only one account information per request.

EnvironmentURLAPIRequest Type
CERT/UAThttps://{base_url}/emeaexternal/services/crm/contactRESTPOST
Productionhttps://{base_url}/emeaexternal/services/crm/contactRESTPOST

Request Body

    {
"dmsCode": "MISTRAL",
"dmsContactId": "guuid",
"dmsAccountId": "guuid",
"dmsDmdOutletCode": "guuid",
"createdOn": "YYYY-MM-DD hh:mm:ss",
"modifiedOn": "YYYY-MM-DD hh:mm:ss",
"firstName": "",
"lastName": "",
"brandCode": 0,
"addressCountry": "",
"addressStateOrProvince": "",
"addressCity": "",
"addressPostalcode": "",
"addressLine": "",
"primaryContact": true,
"mobilePhone": "",
"addressTelephone": "",
"emailAddress": "",
"isCnhiDirectMarketingConsent": 0,
"isCnhiThirdMarketingConsent": 0,
"consentDate": "YYYY-MM-DD hh:mm:ss",
"isDealerDirectMarketingConsent": 0,
"isDealerThirdMarketingConsent": 1,
"dealerConsentDate": "YYYY-MM-DD hh:mm:ss",
"channelPrivacyDate": "YYYY-MM-DD hh:mm:ss",
"contactByEmail": 0,
"contactByCall": 0,
"contactBySms": 0,
"stateCode": 1,
"statusCode": 1
}

Sample Create / Update Contact API Sample JSON Request

Data Format & Validation

Property name – JSON bodyDescriptionDEP/DMS MandatoryField TypeField Format/Expected Value
dmsCodeDMScodeYtextMax length: 500
dmsContactIdID contact External – contactedYtextMax length: 500
dmsAccountIdID Account External - AccountidYtextMax length: 500
dmsDmdOutletCodeBusiness UnitYtext
createdOnCreation DateYdatetimeYYYY-MM-DD hh:mm:ss (UTC)
modifiedOnModification DateYdatetimeYYYY-MM-DD hh:mm:ss (UTC)
firstNameFirstnameYtextMax length: 50
lastNameLastnameYtextMax length: 50
brandCodeBrandYintPicklist
addressCountryCountryYtextMax length: 50
addressStateOrProvinceProvincetextMax length: 50
addressCityCityYtextMax length: 50
addressPostalCodePostal CodeYtextMax length: 20
addressLineStreetYtextMax length: 250
primaryContactprimary contactBoolean
mobilePhoneMobileYtextMax length: 50
addressTelephoneLanding LinetextMax length: 50
emailAddressEmailYtextMax length: 506
isCnhiDirectMarketingConsentCNHi Direct marketing Consentbit0=no 1=yes FALSE=no TRUE=yes
isCnhiThirdMarketingConsentCNHi Third marketing Consentbit0=no 1=yes FALSE=no TRUE=yes
consentDateCNHi Consent DatedatetimeYYYY-MM-DD hh:mm:ss (UTC)
isDealerDirectMarketingConsentDealer Direct Marketing Consentbit0=no 1=yes FALSE=no TRUE=yes
isDealerThirdMarketingConsentDealer Third Marketing Consentbit0=no 1=yes FALSE=no TRUE=yes
dealerConsentDateDealer Consent DatedatetimeYYYY-MM-DD hh:mm:ss (UTC)
channelPrivacyDateChannel Privacy DatedatetimeYYYY-MM-DD hh:mm:ss (UTC)
contactByEmailContact by Emailbit0=no 1=yes FALSE=no TRUE=yes
contactByCallContact by Callbit0=no 1=yes FALSE=no TRUE=yes
contactBySmsContact by SMSbit0=no 1=yes FALSE=no TRUE=yes
stateCodeStatusYIntPicklist
statusCodeStatus ReasonYIntPicklist

Success Response Structure

Json PropertyDescription
statusCodeHTTP status code
MessageStatus Message
ErrorsArray with errors details

Success Sample Response

Download Create / Update Contact API Success Sample Response

Failure Response Structure

Json PropertyDescription
instancePathProperty where the error occurred
schemaPathProperty path
KeywordArray with errors details
ParamsArray with additional error details – e.g. max length for string check
MessageDescriptive message for error

Failure Sample Response

Download Create / Update Contact API Failure Sample Response

Create / Update Contact API Attributes

Download Create / Update Contact API Attributes

Response Codes

ScenarioHTTP Status CodeMessage
Not a JSON400Validation failed
Invalid JSON500Internal Server Error
Mandatory fields Missing, Data Type, or Format Mismatch400Validation failed
Try to create an existing Account, already saved in CRM400Cannot create Account due to {accountid_DMS} already linked in SalesApp. To update visit SalesApp.
All validation passed200Account saved successfully

Get Contact API

The goal of this API is to retrieve information related to the single/ multiple contact wihtin a DMS. DMSs can query the account information based on dmsDmdOutletCode, dmsCode, dmsAccountId,dmsContactId and fetchDate.

EnvironmentURLAPIRequest Type
CERT/UAThttps://{base_url}/emeaexternal/services/crm/contact-linkedRESTGET
Productionhttps://{base_url}/emeaexternal/services/crm/contact-linkedRESTGET

Request Parameters

Parameter NameParams TypeTypeIs Required (Y|N)Default ValueComments
dmsDmdOutletCodeQueryStringY-
dmsCodeQueryStringN-
dmsAccountIdQueryStringN-If valorized, it allows to fetch specific account data list associated to given account id
dmsContactIdQueryString
fetchdateQueryString (Date Time)N-If valorized, it allows to fetch accounts modified after the provided date
fetchSizeQueryIntN-It becomes mandatory for request to fetch data for given date
pageNumberQueryIntN-It becomes mandatory for request to fetch data for given date

Note:

  1. To fetch single contact, provide value for dmsDmdOutletCode, dmsCode, dmsAccountId and dmsContactId.

  2. To fetch all contacts of an Accounts, provide value for dmsDmdOutletCode, dmsCode, dmsAccountId and pageNumber (pagination feature: it specifies the requested page number, starting from 1, and is needed for splitting the output in pages when the result set exceed a prefixed number of documents).

  3. To fetch all contacts modified after the provided date, provide values for dmsDmdOutletCode, dmsCode, fetchDate and pageNumber (pagination feature: it specifies the requested page number, starting from 1, and is needed for splitting the output in pages when the result set exceed a prefixed number of documents).

Response Description

Json PropertyDescription
collectionNameValorized with “accounts”
ItemsList of items that are matching the request; empty list for no data found scenario. Please note that the structure of items in list is composed of account items.
paginationPropertiesSet of metadata required to handle client pagination
statusCodeHTTP status code
MessageStatus Message

Success Response Structure

Json PropertyTypeDescription
collectionNameStringCollection Name – contacts
Items.dmsCodeStringDMS Code
Items. dmsContactIdStringDms Contact Id
Items.dmsAccountIdStringDMS Account Id
Items.dmsDmdOutletCodeStringDMS DMD Outlet Code
Items.createdOnString (Date)Created Date
Items.modifiedOnString (Date)Modified On
Items.firstNameStringFirst Name
Items.lastNameString (Date)Last Name
Items.brandCodeInteger (Int32)Brand
Items.addressCountryStringAddress Country
Items.addressStateOrProvinceStringAddress State or Province
Items.addressCityStringAddress City
Items.addressLineStringAddress Lane
Items.addressPostalCodeStringAddress Postal Code
Items.primaryContactBoolianIs primary Contact?
Items.mobilePhoneStringMobile Phone - "000-000-0000",
Items.addressTelephoneStringAddress Telephone - "000-000-0000",
Items.emailAddressStringEmail Address - "xxxxyyyyy@soso-aaa.bbb.com",
Items.gdprIsPrivacyNoteDeliveredInteger (Int32)GdprIs Privacy Note Delivered
Items.isCnhiDirectMarketingConsentBoolianIs Cnhi Direct Marketing Consent?
Items.isCnhiThirdMarketingConsentBoolianIs Cnhi Third Marketing Consent?
Items.consentDateString (Date)Consent Date
Items.cnhiConsentSourceCodeInteger (Int32)Cnhi Consent Source Code
Items.isDealerDirectMarketingConsentBoolianIs Dealer Direct Marketing Consent?
Items.isDealerThirdMarketingConsentBoolianIs Dealer Third Marketing Consent?
Items.dealerConsentDateString (Date)Dealer Consent Date
Items.dealerConsentSourceCodeInteger (Int32)Dealer Consent Source Code
Items.channelPrivacyDateString (Date)Channel Privacy Date
Items.contactByEmailBoolianContact By Email
Items.contactByCallBoolianContact By Call
Items.contactBySmsBoolianContact By Sms
Items.stateCodeInteger (Int32)State Code
Items.statusCodeInteger (Int32)Status Code
paginationProperties.pageNumberInteger (Int32)Page Number
paginationProperties.totalPagesInteger (Int32)Total Pages
paginationProperties.pageSizeInteger (Int32)Page Size
paginationProperties.totalItemsInteger (Int32)Total Items
statusCodeStringStatus Code
MessageStringMessage

Success Sample Response

Download Get Account Success Sample Response

Failure Response Structure

Json PropertyTypeDescription
collectionNameStringCollection Name - contacts
ItemsArrayEmpty Items - "items": []
paginationProperties.pageNumberInteger (Int32)Page Number
paginationProperties.totalPagesInteger (Int32)Total Pages
paginationProperties.pageSizeInteger (Int32)Page Size
paginationProperties.totalItemsInteger (Int32)Total Items
statusCodeStringStatus Code
MessageStringMessage

Failure Sample Response

Download Get Account Failure Sample Response

Reponse Codes

ScenarioHTTP Status CodeMessage
No Data Found404No Data Found
Unable to perform search500Internal Server Error
Mandatory fields Missing400Validation failed
Operation performed200Operation successfully performed